/*
 * Modelibra
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package communication.blog.entry;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.modelibra.Entity;
import org.modelibra.IModel;
import org.modelibra.Oid;

/* ======= import model class ======= */

import communication.blog.Blog;

/* ======= import property classes ======= */

	import java.util.Date;	

/* ======= import internal parent entity class ======= */

import communication.blog.member.Member;	

/* ======= import internal child entities classes ======= */


/* ======= import external parent entity and entities classes ======= */


/* ======= import external child entities classes ======= */


/* ======= import external many-to-many internal parent entities classes ======= */


/**
 * Entry generated entity. This class should not be changed manually. 
 * Use a subclass to add specific code.
 * 
 * @author Dzenan Ridjanovic
 * @version 2008-01-31
 */
public abstract class GenEntry extends Entity<Entry> {

	private static final long serialVersionUID = 1201814107157L;

	private static Log log = LogFactory.getLog(GenEntry.class);

	/* ======= entity properties (without the code, reference and derived properties) ======= */
	
    	    private String subject;
	
    	    private String content;
	
    	    private Date creationDate;
	
        
    /* ======= reference properties ======= */
	
        
    /* ======= internal parent neighbors ======= */
	
    	    private Member member;	
    
	/* ======= internal child neighbors ======= */
	
        
    /* ======= external parent neighbors ======= */
	
    
	/* ======= external child neighbors ======= */
	
        
	/* ======= base constructor ======= */
	
	/**
	 * Constructs entry within the domain model.
	 * 
	 * @param model
	 *            model
	 */
	public GenEntry(IModel model) {
		super(model);
		// internal child neighbors only
			}
	
	/* ======= parent argument(s) constructor ======= */
	
		    /**
	     * Constructs entry within its parent(s).
	     * 
	        		* @param Member member
			     */
	    public GenEntry(
	    		    							Member member  
	    			    		    ) {
	    				this(member.getModel());
			// parents
							setMember(member);
	    		    }
        
    /* ======= entity property (without the code, reference and derived properties) set and get methods ======= */
	
    		/**
		 * Sets subject.
		 * 
		 * @param subject
		 *            subject
		 */
		public void setSubject(String subject) {
			this.subject = subject;
		}
		
		/**
		 * Gets subject.
		 * 
		 * @return subject
		 */
		public String getSubject() {
			return subject;
		}  
		
				    		/**
		 * Sets content.
		 * 
		 * @param content
		 *            content
		 */
		public void setContent(String content) {
			this.content = content;
		}
		
		/**
		 * Gets content.
		 * 
		 * @return content
		 */
		public String getContent() {
			return content;
		}  
		
				    		/**
		 * Sets creationDate.
		 * 
		 * @param creationDate
		 *            creationDate
		 */
		public void setCreationDate(Date creationDate) {
			this.creationDate = creationDate;
		}
		
		/**
		 * Gets creationDate.
		 * 
		 * @return creationDate
		 */
		public Date getCreationDate() {
			return creationDate;
		}  
		
				        
    /* ======= reference property set and get methods ======= */
    
        
    /* ======= derived property abstract get methods ======= */
    
        
    /* ======= internal parent set and get methods ======= */
    
        	/**
		 * Sets member.
		 * 
		 * @param member
		 *            member
		 */
    	public void setMember(Member member) {
			this.member = member;
		}

		/**
		 * Gets member.
		 * 
		 * @return member
		 */
		public Member getMember() {
			return member;
		}
		
		
	/* ======= internal child set and get methods ======= */
    
    	
	/* ======= external parent set and get methods ======= */
    
    	
	/* ======= external one-to-many child set and get methods ======= */
    
    	
	/* ======= external (part of) many-to-many child set and get methods ======= */
    
        
}